������ ����������������� ������������ �� ���� Arch � ����

���� � ��� ������ �������� ������� ����������� ����������� � ����, �� ������ �������� ��� ������ Arch Linux. ������ ���������� ����� ������������ ��������� ������������ ��������� ����������� ���� ������� ����� � ������ ��� ��������� ���������� ��� ���������� ���������������� ������.

�� ������ ������� ���������������� ����������� �� ���� Arch � ������� ������� ��������� ������ Archiso, ������� ������������ ����� ����� �������� Bash � ���������� ������ � ��������, �� ��� ���� ���� ��� ������ �������� ��� �������� �����������.

��������� ����� ��� ������ ������������

������, ��� ��� ����� ��� ������ - ��� ������������� ����������� Arch. ���������� �� ��� ����������� � ���� ����� ��� ����������, ������� ����� �� �� ����� ��������� ���� �������.

����� ��������� Arch ��������� ��� � ������������ �� ������ �������. ���������� �������������� ������, ������� ���� � ���� ����������, � ��������� ������ ������� �������, �������� ����. ����� �� ��������� ��� ��� ��������� �� �������������� ���������� Arch � ���, ������� �� ����� ��������.

����� ����, ��� �� ��������� ���� �����������, �������� �������� � ���������� ����������� ��� Archiso:

$ pacman -S make squashfs-tools libisoburn dosfstools patch lynx devtools git 

������ �������� ��������� ������ ������ archiso �� ����������� Git � ������� �������:

$ git clone git://projects.archlinux.org/archiso.git 

��� ��������� ����� � ���������� ~/archiso. ��������� � ��� ���������� � ���������� ������� � ������� ������� make install. ����� ��������� ��������� �� ������ ��� ������ �������� ������� ���������� ~/archiso. �����, �������� ����������, � ������� �� ����� ����������� ����� ��� ������ �������� ������������:

$ mkdir ~/archlive 

���������, ��� � ��� ���������� ���������� ��������� ������������ ��� ���������� ���� ����������, ������� �� ������ ����������, � ����� ����� ������ ������, ������� �� ������ ��������� � ���� �����������.

������ ��� ����� ����������� ���� �� ���� �������� Archiso. ������� baseline ����� ��� �������� ������� live-������� ��� ����������������� �������. �� ����� ������������ ������� releng, ������� ��������� ������� ��������� ����������� ��� ���� ����� Arch Linux � ������������������ ������������. ��� ������������� ���� �������� ������ ���������� �� � ���������� ~/archlive:

# cp -r /usr/share/archiso/configs/profile/ archlive

���������� �������

��������� ������ � ISO-����� � ������� Archiso ����� ������, ��� ��������� �� � ��������� ����, �� ������ ������ �� ������. � ���������� ~/archlive � ��� ��� �����: packages.i686, packages.x86_64 � packages.both. �� ������ ������� �� � ��������� ��������� � �������� �������� �������, ������� �� ������ �������� � �����������. Archiso ����� ��������� ���������� ����� ��� ��������������� ����������� � ����� ����������� �� � �����, ������� ����� �������� ��� �� 32-�, ��� � �� 64-������ �������. ��� �� �����, ��� ����������� ���������������, �� ����������� ��� ��������� �������� ������� � ���� packages.both, ����� ��� ���� �������� ��� ����� ����������.

���� packages.both ��� �������� ������������ ����� �������. �� ������ �������� �� ���, � ��������� ���� ������ � ����� �����. �� ������ ������� ������ ���� ������������� � ������� ������� � ������� �������:

$ pacman -Qqe 

� ����� ����������� ��, ������� ��� �����. �� ������ ������� ������� ������� � ������� ������ Mate, ���������� ����� � ������� � ��������� Firefox, ������� � ���� packages.both ��������� ������:

xorg-server xorg-xinit xorg-server-utils xf86-video-vesa slim mate firefox 

�� ����� ������ ����������� � ���� packages.both ��� ������, ������������� � �������, � ������� �������:

$ pacman -Qqe >> ~/archlive/packages.both 

��������� �������� ����������

���������� airootfs ������ ~/archlive/ ������ �������� ��� ����, ��� ����� ���������� � �������� ���������� ������ ������������. ����� �����, ������� �� ��������� � ��� ����������, ����� ��������� � �������� ������� ������������, �������, ���� �� ����������� �������� ����� Slim, ���������� ��� ���������������� ����:

$ cp /etc/slim.conf ~/archlive/airootfs/etc/ 

����������, ��� ���������� ����������� ���� /etc/systemd/system/display-manager.service � ��������������� ����� ������ ~/archlive/airootfs/, � ����� ����������, � ������� �������� ���� ����������, � ������ /usr/share/backgrounds, /usr/share/icons � /usr/share/themes.

���� �� ������, ����� ����� ����������� ���� ��� �� ����� �������������, ���������� ��������������� �����:

$ cp /etc/{shadow,passwd,group} ~/archlive/airootfs/etc/ 

����� ���, ��� ���������� ����� ����� �� �������� ���������� ������������, ���������� ������� ���������� skel:

$ mkdir ~/archlive/airootfs/etc/skel 

��� ���������� ���������� �������� ���������� ������������ �� ����� ���������� �������. ������ �� ������ ���������� ����� �� �������� ����������:

$ cp ~/.bashrc ~/archlive/airootfs/etc/skel/ 

����� �������, �� ������ ����������� ����� ����� ��� ����� �� ����� �������� ���������� � ���������� skel, ������� ~/.xinitrc � ~/.config.

��� ����, ����� ������������� ���������������� � ������� �� ����� �������� ������������, � �� root, �������� ���� ~/archlive/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf � ��������� ��������� � �������������� ��������� ������:

$ cp ~/.bashrc ~/archlive/airootfs/etc/skel/ 

ExecStart=-/sbin/agetty --autologin bodhi --noclear %I 38400 linux

�������� bodhi �� ���� ��� ������������.

�������������� ���������

� �������� ���������� root (~/archlive/airootfs/root) ���� ���� customize-root-image.sh. ����� ������ �� ����������������� �������, ������� �� ������ �� ��������� ����� ��������� Arch, ����� ���� ��������� � ���� ����. �������, ��� ���������� � ���� ����� ������ ������������ ��� ������ ���������, �� ���� / � ������� ������ ���������� � �������� ���������� ����������� ������������.

�������� ���� � ��������� ���������, ������� ������ � /etc/localtime � ������� ���� ������� ����:

$ ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime 

����� ���������, ��� � �������� ��������� �������� ���������� Bash:

$ usermod -s /usr/bin/bash root 

����� ���������� ���������� ���������� skel � ���� ���������������� �������� ����������:

$ cp -aT /etc/skel/ /home/bodhi/ 

� ������� ����������� ��������� ���� ������:

$ chown bodhi:users /home/bodhi -R 

� ���� ��������� �������� �������� bodhi �� ���� ��� ������������.

�������, ���������� �������� ����, �� ����� �����, � ��������������� ��� ������� systemctl, ������� ����� ���� ������ #. ����� ����������� � ����������� ���������, �������� ��������� ������ ��� ������� ���� ������ �����:

systemctl enable pacman-init.service choose-mirror.service systemctl set-default graphical.targetsystemctl enable graphical.target 

��� ���. ������ ��� ����� ������� ����� ������������. ��������� � ���������� ~/archlive � ��������� ��������������� ������� ��� ������� �������� ������:

$ ./build.sh -v -N EduArch -V 1.0 -L EduArch_1.0 

���� -v �������� ����� ������ ��������� ���������� � ��������, -N ������ ��� ISO-������, -V ������ ������, � � -L ��������� ����� � ��������������� ISO.

�������� ��������, ��� ������� ������ ���������� ���������, � ����� ������ �� ���������� ����� � ����������� �� �������� ������ ����������. ����� ���������� �� ������� ISO-����� � ���������� ~/archlive/out.

���������� �������

����� ��������� ����� ����� ������ ������ �� �������� �������� ���. �������� ������ ����� ������ ����������, ��� ��� ����������� �������� �����-���� �����, ������� �� ��������� � ����� �������.
��� ����� ��������� � ���������� ~/archlive/work. ���������� i686 � x86_64 ������ work �������� �������� ������� ��� ��������������� ����������. �� ������ ������� �������� ���������� �� ���� �� ��� � ������� �������:

$ arch-chroot ~/archlive/work/x86_64/root-image 

���

$ arch-chroot ~/archlive/work/i686/root-image 

������, �������, �� ������ ������ ����� ���������� ��� ��������� �������. ���� �� ������ �������� ����������, �� ������� �������� ���� ������ ������ ��������� ��������� � ������ �������:

$ pacman-key --init $ pacman-key --populate 

����� ���� ������ �������� ������� � ������� �������:

$ pacman -Syu 

������ ����������� ���������, ������� �� ��������� chroot.

$ exit 

�� �������� ������� ��� ��������� ��� ����� ����������. ������ ���������� ������ ������� �����. ������ ������ build.sh, ��� ��� �� ��� � ���������� work. ����� ��������� ��� ���-���� ������� ����� �����, �������� ���� build.sh � ��������� ���������. ��������� � ����� ����� � ������� �������� run_once �� ������ ������ make_prepare � make_iso:

for arch in i686 x86_64; do make_preparedonemake_iso 

��������� ���� � ��������� ������ ��� �������� ������:

$ ./build.sh -v -N EduArch -V 2.0 -L EduArch_2.0

